This invention relates to Internet browsers, and more particularly to facilitating communication between two frames in a single browser window where the two frames display Internet content from two different domain servers.
With the spread of the Internet in everyday life, more and more tasks are performed online. The Internet, and particularly the World Wide Web, is used among other things for shopping, paying bills, requesting and qualifying for loans for a number of different products ranging from consumer goods and credit cards to automobiles and mortgages.
As consumers, corporate entities and government increasingly use the online services available through the World Wide Web, companies have discovered that the Internet is a lucrative medium to advertise their products. The Internet gives an advantage over regular advertising, in that it can target the advertisements depending on the content that the user is viewing. Thus advertisers can offer related services, or competitive products at competitive prices, by monitoring what content a user is viewing, and by tailoring the displayed advertisements based on that content or on the information a user is submitting to the Web.
One way of achieving such directed advertising is through the use of frames in a browser window. If the user is entering information or viewing certain content in one frame, a program can monitor that information or content and display related—or competitive—advertisements or offers in another frame in the same browser window.
Apart from advertising, users may prefer to see multiple results in the same window—another option when using different frames in the same window. The results displayed in one frame are often dependent on the information entered into another frame. Similarly, often an action in one frame, such as clicking a button, needs to cause a change of the displayed results in another frame. The use of frames allows the advertisement, offer or multiple search result pages to be displayed simultaneously in separate frames. A user can also independently manipulate frames by entering information, or scrolling or changing the displayed content, while simultaneously viewing information displayed in different frames.
One challenge in implementing such an interdependent frame display model is that often the advertising, competitive offer or search result to be displayed in a frame depends on data stored on a domain server different than the domain server of that displaying frame. In order to display directed advertising or a competitive offer, or in order to display in one frame search results based on information entered in another frame, an action taken in the frame where information was entered has to affect the displaying frame—i.e., the frames need to communicate with each other. If all content is served from the same domain server, communication between frames is not a problem. However when the contents of the different frames reside on different servers, the communication between them has heretofore been seriously restricted because of security concerns.
Browsers restrict direct exchange of information between objects, including frames, residing on different domains. For security reasons frames from one domain server do not have access to the properties or information of frames residing on a different domain server. Browsers do not allow a read-out in one frame of information from other frames if those other frames come from different servers. Further, when loading an object such as a page or a frame from one server, a script loaded from a different server cannot get or set certain properties of certain browser and HTML objects in a window or frame.
The domain servers themselves can communicate with each other and exchange information because they can use protocols other than browser-based protocols that are subject to the aforementioned security restriction. And a browser frame can send a request to a server other than its own server. However, neither that browser frame nor that server can cause such information to be directly displayed in a frame other than the one that made the request, because the Internet is a “pull-based” system. In other words, a page or content is not delivered or displayed until a browser requests it and the content is delivered to the point of request. The opposite of “pull” is “push”, where data is sent to a receiving browser without the receiving browser issuing a request. Although domain servers can push information to each other, and windows or frames can push information to numerous domain servers, such information cannot be displayed directly—the browser must first pull it. If two frames residing on different servers need to communicate, the initiating frame can cause its domain server to push the information onto the domain server of the target frame. However, the browser displaying the target frame needs to pull that content in order to display it.
It would be advantageous to be able to provide a system that would allow frames residing on different servers to communicate and to cause a browser to display content in one frame (“target frame”), which content is based on an action in, or information received from, the other frame (“initiating frame”).